// pages/room/room.js
const app = getApp();

Page({
  /**
   * 页面的初始数据
   */
  data: {
    recentRooms: [] // 最近加入的房间列表
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.loadRecentRooms();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 每次显示页面时重新加载最近房间列表
    this.loadRecentRooms();
  },

  /**
   * 返回上一页
   */
  goBack() {
    wx.navigateBack();
  },

  /**
   * 导航到创建房间页面
   */
  navigateToCreateRoom() {
    wx.navigateTo({
      url: '/pages/create-room/create-room'
    });
  },

  /**
   * 导航到加入房间页面
   */
  navigateToJoinRoom() {
    wx.navigateTo({
      url: '/pages/join-room/join-room'
    });
  },

  /**
   * 进入指定房间
   */
  enterRoom(e) {
    const roomId = e.currentTarget.dataset.roomId;
    if (!roomId) {
      wx.showToast({
        title: '房间信息错误',
        icon: 'none'
      });
      return;
    }

    wx.navigateTo({
      url: `/pages/room-detail/room-detail?room_id=${roomId}`
    });
  },

  /**
   * 查看所有房间
   */
  viewAllRooms() {
    // 在实际应用中，可能需要导航到完整的房间列表页面
    wx.showToast({
      title: '查看全部房间',
      icon: 'none'
    });
  },

  /**
   * 加载最近加入的房间
   */
  loadRecentRooms() {
    // 检查用户是否已登录
    if (!app.globalData.userInfo) {
      this.setData({ recentRooms: [] });
      return;
    }

    // 模拟环境，使用mock数据
    const mockRecentRooms = [
      {
        roomId: '1001',
        roomName: '斗地主包间',
        memberCount: 3,
        lastActive: '今天 20:30'
      },
      {
        roomId: '1002',
        roomName: '麻将室',
        memberCount: 4,
        lastActive: '昨天 15:45'
      },
      {
        roomId: '1003',
        memberCount: 3,
        lastActive: '3天前'
      }
    ];

    this.setData({ recentRooms: mockRecentRooms });

    /* 实际API调用代码
    app.request('/user/recent-rooms', {
      method: 'GET'
    }).then(res => {
      this.setData({
        recentRooms: res.map(room => ({
          roomId: room.id,
          roomName: room.name,
          memberCount: room.member_count,
          lastActive: this.formatTime(room.last_active)
        }))
      });
    }).catch(() => {
      wx.showToast({
        title: '加载失败，请重试',
        icon: 'none'
      });
    });
    */
  },

  /**
   * 格式化时间
   */
  formatTime(timestamp) {
    if (!timestamp) return '未知时间';
    
    const now = new Date();
    const target = new Date(timestamp);
    const diffDays = Math.floor((now - target) / (24 * 60 * 60 * 1000));
    
    if (diffDays === 0) {
      // 今天
      const hours = target.getHours().toString().padStart(2, '0');
      const minutes = target.getMinutes().toString().padStart(2, '0');
      return `今天 ${hours}:${minutes}`;
    } else if (diffDays === 1) {
      return '昨天';
    } else if (diffDays < 7) {
      return `${diffDays}天前`;
    } else {
      // 超过一周显示具体日期
      return `${target.getMonth() + 1}月${target.getDate()}日`;
    }
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.loadRecentRooms();
    wx.stopPullDownRefresh();
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '打牌记账助手',
      path: '/pages/index/index',
      imageUrl: '/assets/share-image.png'
    };
  }
});